#!/bin/bash

echo "🔍 Neovim 启动问题诊断"
echo "========================"

# 测试基本启动
echo ""
echo "📋 测试基本 Neovim 启动:"
if nvim --version > /dev/null 2>&1; then
    echo "✅ Neovim 基本启动正常"
else
    echo "❌ Neovim 基本启动失败"
    exit 1
fi

# 测试配置加载
echo ""
echo "📋 测试配置加载:"
echo "尝试用最小配置启动 Neovim..."

# 创建临时最小配置
TEMP_CONFIG="/tmp/minimal_nvim_config.lua"
cat > "$TEMP_CONFIG" << 'EOF'
-- 最小 Neovim 配置用于测试
vim.opt.runtimepath:append("/home/ethan/.local/share/nvim/lazy")
vim.opt.runtimepath:append("/home/ethan/.local/share/nvim/lazy/snacks.nvim")
vim.opt.runtimepath:append("/home/ethan/.local/share/nvim/lazy/lazy.nvim")

-- 设置 lazy
local lazypath = "/home/ethan/.local/share/nvim/lazy/lazy.nvim"
if vim.fn.isdirectory(lazypath) == 1 then
    vim.opt.runtimepath:prepend(lazypath)
end

-- 测试 require
local ok, snacks = pcall(require, "snacks")
if ok then
    print("✅ snacks.nvim 加载成功")
else
    print("❌ snacks.nvim 加载失败: " .. tostring(snacks))
end

vim.cmd("qa")
EOF

# 运行测试
if nvim --headless -c "luafile $TEMP_CONFIG" 2>/tmp/nvim_error.log; then
    echo "✅ 最小配置启动成功"
else
    echo "❌ 最小配置启动失败"
    echo "错误信息:"
    cat /tmp/nvim_error.log
fi

# 清理
rm -f "$TEMP_CONFIG" /tmp/nvim_error.log

echo ""
echo "📋 如果问题仍然存在，请提供:"
echo "1. 完整的错误信息 (包括堆栈跟踪)"
echo "2. 错误发生的具体时机 (启动时/加载配置时/使用插件时)"
echo "3. 最近修改的配置文件列表"